home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1995 June / MacFormat 25.iso / Shareware City / Developers / OutOfPhase1.1 Source / OutOfPhase Folder / ExecuteSynthesis.h < prev    next >
Text File  |  1995-01-05  |  3KB  |  102 lines

  1. /* ExecuteSynthesis.h */
  2.  
  3. #ifndef Included_ExecuteSynthesis_h
  4. #define Included_ExecuteSynthesis_h
  5.  
  6. /* ExecuteSynthesis module depends on */
  7. /* MiscInfo.h */
  8. /* Audit */
  9. /* Debug */
  10. /* Definitions */
  11. /* FixedPoint */
  12. /* BinaryCodedDecimal */
  13. /* Memory */
  14. /* MainWindowStuff */
  15. /* LinearTransition */
  16. /* PlayTrackInfoThang */
  17. /* Array */
  18. /* WaveTableOscControl */
  19. /* EnvelopeState */
  20. /* LFOGenerator */
  21. /* InstrList */
  22. /* InstrObject */
  23. /* TrackObject */
  24. /* SampleOscControl */
  25. /* ModulationOscControl */
  26. /* Fractions */
  27. /* FrameObject */
  28. /* DeterminedNoteStructure */
  29. /* TempoController */
  30. /* OscBankPlayer */
  31. /* DataMunging */
  32. /* Alert */
  33. /* CheckNameUniqueness */
  34. /* ErrorDaemon */
  35. /* TrackEffectGenerator */
  36. /* DelayLine */
  37. /* NLProc */
  38. /* FilterFirstOrderLowpass */
  39. /* FilterFirstOrderHighpass */
  40. /* FilterSecondOrderReson */
  41. /* FilterSecondOrderZero */
  42. /* FilterButterworthLowpass */
  43. /* FilterButterworthHighpass */
  44. /* FilterButterworthBandpass */
  45. /* FilterButterworthBandreject */
  46. /* FilterNull */
  47. /* FilterArray */
  48. /* Analyzer */
  49. /* EffectSpecList */
  50.  
  51. /* this module is the entrypoint for actually doing synthesis. */
  52.  
  53. #include "FixedPoint.h"
  54. #include "BinaryCodedDecimal.h"
  55.  
  56. /* forwards */
  57. struct MainWindowRec;
  58. struct CodeCenterRec;
  59. struct FunctionListRec;
  60. struct SampleListRec;
  61. struct AlgoSampListRec;
  62. struct WaveTableListRec;
  63. struct AlgoWaveTableListRec;
  64. struct InstrListRec;
  65. struct ArrayRec;
  66. struct TrackListRec;
  67. struct TrackObjectRec;
  68. struct ErrorDaemonRec;
  69.  
  70. typedef enum
  71.     {
  72.         eSynthDone EXECUTE(= -4325),
  73.         eSynthNoMemory, /* not enough memory to build internal structures for playback */
  74.         eSynthUserCancelled, /* user cancelled via the periodic callback */
  75.         /* eSynthProgramError, */ /* an inconsistency exists in the track */
  76.         eSynthPrereqError, /* the sample/func/instrs couldn't be built */
  77.         eSynthUndefinedInstrumentError, /* the named instrument does not exist */
  78.         eSynthDataSubmitError, /* some error (perhaps disk error) occurred during callback */
  79.         eSynthDuplicateNames /* some objects have the same name */
  80.     } SynthErrorCodes;
  81.  
  82. /* This routine does all of the work. */
  83. /* The DataOutCallback is called every time a block of data is */
  84. /* ready to be sent to the target device; this is provided so that data can be */
  85. /* redirected to a file or postprocessed in some way before playback. */
  86. /* the KeyTrack and FrameToStartAt provide a reference point indicating where */
  87. /* playback should occur.  if KeyTrack is NIL, then playback begins at the beginning. */
  88. /* the rate parameters are in operations per second. */
  89. SynthErrorCodes                Synthesizer(struct MainWindowRec* MainWindow,
  90.                                                 MyBoolean (*DataOutCallback)(void* Refcon,
  91.                                                     largefixedsigned* DataBlock, long NumFrames,
  92.                                                     MyBoolean* AbortPlaybackFlagOut),
  93.                                                 void* DataOutRefcon, struct ArrayRec* ListOfTracks,
  94.                                                 struct TrackObjectRec* KeyTrack, long FrameToStartAt,
  95.                                                 long SamplingRate, long EnvelopeRate, MyBoolean UseStereo,
  96.                                                 LargeBCDType DefaultBeatsPerMinute,
  97.                                                 LargeBCDType OverallVolumeScalingReciprocal,
  98.                                                 MyBoolean InterpOverTime, MyBoolean InterpAcrossWaves,
  99.                                                 LargeBCDType ScanningGap, struct ErrorDaemonRec* ErrorDaemon);
  100.  
  101. #endif
  102.